package SocketLearn.NetSocketLearn;

import java.net.InetAddress;
import java.net.UnknownHostException;

/**
 * @author Lenl
 * @version v1.0
 * @create 2021-06-06 13:16
 * @description
 * 一、网络编程中有两个主要的问题：
 *  1.如何准确定位网络上的一台或多台主机：定位主机上的特定的应用
 *  2.找到主机后如何可靠高效地进行数据传输
 *
 * 二、网络编程中的两个要素：
 *  1.对应问题1:IP和端口号
 *  2.对应问题2：提供网络通信协议：TCP/IP参考模型（应用层、传输层、网络层、物理+数据链路层）
 *
 * 三、通信要素一：IP和端口号
 *  1.IP：唯一的标识 Internet上的计算机（通信实体）
 *  2.在Java中使用InetAddress类代表IP
 *  3.IP分类：IPv4和IPv6；万维网和局域网
 *  4.域名：www.baidu.com
 *  5.本地回路地址：127.0.0.1对应着localhost
 *  6.实例化InetAddress:①getByName(String host) ②getLocalHost()
 *      两个常用方法：getHostName() getHostAddress()
 *  7.端口号：正在计算机上运行的进程。
 *      要求：不同的进程有不同的端口号
 *      范围：被规定为一个16位的整数：0-65535
 *  8.端口号与IP地址的组合得出一个网络套接字：Socket
 */
public class InetAddressTest {
    public static void main(String[] args) {
        try {
            InetAddress inet1=InetAddress.getByName("10.70.37.22");
            System.out.println(inet1);
            InetAddress inet2=InetAddress.getByName("www.atguigu.com");
            System.out.println(inet2);

            System.out.println(InetAddress.getLocalHost());

            //getHostName()
            System.out.println(inet2.getHostName());
            //getHostAddress()
            System.out.println(inet2.getHostAddress());
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }
    }
}
